package me.mononin.dilechat.fragments.account;



import android.content.Context;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import net.qiujuer.genius.ui.widget.Loading;

import butterknife.BindView;
import butterknife.OnClick;
import me.mononin.common.common.app.PresenterFragment;
import me.mononin.dilechat.R;
import me.mononin.dilechat.activities.MainActivity;
import me.mononin.factory.preseneter.account.RegisterContract;
import me.mononin.factory.preseneter.account.RegisterPresenter;

/**
 * 用户注册Fragment
 */
public class RegisterFragment extends PresenterFragment<RegisterContract.Presenter>
        implements RegisterContract.View{

    @BindView(R.id.edit_phone)
    EditText mPhone;
    @BindView(R.id.edit_name)
    EditText mName;
    @BindView(R.id.edit_password)
    EditText mPassword;


    @BindView(R.id.loading)
    Loading mLoading;

    @BindView(R.id.btn_submit)
    Button mSubmit;
    private AccountTrigger mTrigger;
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        mTrigger = (AccountTrigger) context;
    }

    @Override
    protected RegisterContract.Presenter initPresenter() {
        return new RegisterPresenter(this);
    }


    @Override
    protected int getContentId() {
        return R.layout.fragment_register;
    }

    @Override
    public void registerSuccess() {
        // 注册成功，这个时候账户已经登录
        // 我们需要进行跳转到MainActivity界面
        MainActivity.show(getContext());
        // 关闭当前界面
        getActivity().finish();
    }

    @Override
    public void showError(int str) {
        super.showError(str);
        // 当需要显示错误的时候触发，一定是结束了

        // 停止Loading
        mLoading.stop();
        // 让控件可以输入
        mPhone.setEnabled(true);
        mName.setEnabled(true);
        mPassword.setEnabled(true);
        // 提交按钮可以继续点击
        mSubmit.setEnabled(true);
    }

    @Override
    public void showLoading() {
        super.showLoading();

        mLoading.start();
        // 让控件不可以输入
        mPhone.setEnabled(false);
        mName.setEnabled(false);
        mPassword.setEnabled(false);
        // 提交按钮不可以继续点击
        mSubmit.setEnabled(false);
    }

    /**
     * 点击事件
     * @param view 控件View
     */
    @OnClick({R.id.btn_submit,R.id.txt_go_login})
    public void clickEvent(View view){
        switch (view.getId()){
            case R.id.btn_submit:
                String phone = mPhone.getText().toString();
                String name = mName.getText().toString();
                String password = mPassword.getText().toString();
                // 调用P层进行注册
                mPresenter.register(phone,password,name);
                break;
            case R.id.txt_go_login:
                mTrigger.triggerView();
                break;
            default:
                break;
        }
    }
}
